MySQL SUM() 函数使用指南

您所在的位置:网站首页 mysql sum函数返回null MySQL SUM() 函数使用指南

MySQL SUM() 函数使用指南

2023-06-16 01:37| 来源: 网络整理| 查看: 265

MySQL SUM() 函数计算所有指定的非 NULL 值的总和并返回。

SUM() 语法

这里是 MySQL SUM() 函数的语法:

SUM(expr)

我们通常在 SQL 中按如下方式使用 SUM() 函数:

SELECT SUM(expr), ... FROM table_name [WHERE ...];

或者按如下方式结合 GROUP BY 子句使用 SUM() 函数:

SELECT SUM(expr), group_expr1, group_expr2, ... FROM table_name [WHERE ...] GROUP BY group_expr1, group_expr2, ...; 参数 expr expr 一个需要统计数量的表达式。它可以是一个列名,也可以是一个表达式。 group_expr1, group_expr2, ... 用于分组的表达式或者列名。 返回值

SUM(expr) 函数返回所有指定的非 NULL 值的总和。

如果没有匹配的行,SUM() 函数返回 NULL。

SUM() 示例

我们将通过 student_score 表进行演示。让我们先创建演示表并插入测试数据。

DROP TABLE IF EXISTS `student_score`; CREATE TABLE `student_score` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `subject` VARCHAR(255) NOT NULL, `score` INT ); INSERT INTO `student_score` (`name`, `subject`, `score`) VALUES ('Tom', 'Math', 80), ('Tom', 'English', 90), ('Jim', 'Math', 84), ('Jim', 'English', 96), ('Tim', 'Math', NULL), ('Tim', 'English', 98);

以下是表中的数据:

+----+------+---------+-------+ | id | name | subject | score | +----+------+---------+-------+ | 1 | Tom | Math | 80 | | 2 | Tom | English | 90 | | 3 | Jim | Math | 84 | | 4 | Jim | English | 96 | | 5 | Tim | Math | NULL | | 6 | Tim | English | 98 | +----+------+---------+-------+ SUM() 简单例子

以下 SQL 语句返回 student_score 表中的所有分数的总和。

SELECT SUM(score) from student_score; +------------+ | SUM(score) | +------------+ | 448 | +------------+ SUM() 结合 GROUP BY

让我们使用 SUM() 结合 GROUP BY 来从更多的维度统计总分数。

按科目统计总分数

SELECT subject, SUM(score) FROM student_score GROUP BY subject; +---------+------------+ | subject | SUM(score) | +---------+------------+ | Math | 164 | | English | 284 | +---------+------------+

这里,MySQL 会根据 GROUP BY subject 首先按照 subject 将结果集分组,然后在每个组内再执行 SUM(score)。

按名称统计总分数

SELECT name, SUM(score) FROM student_score GROUP BY name; +------+------------+ | name | SUM(score) | +------+------------+ | Tom | 170 | | Jim | 180 | | Tim | 98 | +------+------------+

这里,MySQL 会根据 GROUP BY name 首先按照 name 将结果集分组,然后在每个组内再执行 SUM(score)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3